/*******************************************************************************
 * Copyright (c) 2022, 2022
 ******************************************************************************/
package com.alex.demo.es.util;

import java.io.IOException;
import java.net.URL;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

/**
 * @Version 1.0
 * @Author Alex
 * @Created Dec 2022/9/30 9:18
 * @Description
 *              <p>
 *              利用Jsoup获取京东搜索页面的信息
 */
public class HtmlPraseUtil {

	// 抓取京东搜索网页上面的一些信息（主要用到Jsoup这个工具）
	public static void main(String[] args) throws IOException {
		// 获取请求 https://search.jd.com/Search?keyword=java (前提：需要联网)

		String keywords = "java";
		String url = "https://search.jd.com/Search?keyword=" + keywords;
		// 解析网页。（JSoup返回Document 就是浏览器 Document对象）
		Document document = Jsoup.parse(new URL(url), 30000);// 注意若keyWords是中文，这里的URL需要设置支持中文编码，在URL中有对应的重载构造方法
		// 所有你在js中可以使用的方法，这里都能用
		Element element = document.getElementById("J_goodsList");
		// System.out.println(element.html()); 通过打印这个看出图片的attributeKey是：data-lazy-img
		// 获取所有的li元素
		Elements elements = element.getElementsByTag("li");
		// 获取元素中的内容，这里el就是每一个li标签了
		for (Element el : elements) {
			// 关于这种图片特别多的网站，所有的图片都是延迟加载
			String img = el.getElementsByTag("img").eq(0).attr("data-lazy-img");// 注意这里的attributeKey和狂神说视频里面的不一样了，具体以实际网站为准
			String price = el.getElementsByClass("p-price").eq(0).text();
			String title = el.getElementsByClass("p-name").eq(0).text();

			System.out.println(img);
			System.out.println(price);
			System.out.println(title);
			System.out.println();
		}
	}
}
